package com.campus.service;

import com.campus.domain.dto.ActivityQueryDTO;
import com.campus.domain.dto.EnrollActivityDTO;
import com.campus.domain.dto.PublishActivityDTO;
import com.campus.domain.vo.ActivityVO;
import com.campus.domain.vo.PageResultVO;

public interface IActivityService {
    /**
     * 发布活动
     */
    void publishActivity(PublishActivityDTO dto, Long userId);
    
    /**
     * 获取活动列表（分页）
     */
    PageResultVO<ActivityVO> getActivityList(ActivityQueryDTO queryDTO);
    
    /**
     * 获取活动详情
     */
    ActivityVO getActivityDetail(Long activityId);
    
    /**
     * 报名活动
     */
    void enrollActivity(EnrollActivityDTO dto, Long userId);
    
    /**
     * 取消报名
     */
    void cancelEnroll(Long activityId, Long userId);
    
    /**
     * 检查是否已报名
     */
    boolean checkEnrollStatus(Long activityId, Long userId);
    
    /**
     * 删除活动
     */
    void deleteActivity(Long activityId, Long userId);
    
    /**
     * 修改活动
     */
    void updateActivity(Long activityId, PublishActivityDTO dto, Long userId);
}

